<?php

include_once '../classes/login/Autentica.php';
include_once '../classes/usuario/UsuarioDAO.php';
include_once '../classes/contato/ContatoDAO.php';
include_once '../classes/contato/Contato.php';

class Usuario{
	
	private $id;
	private $login;
	private $senha;
	private $telefone;
	private $email;
	private $nome;	
	private $sobrenome;	
	private $dataNascimento;		
	private $sexo;	
	private $cargo;	
	private $contatos;	
	private $projetos;	
	private $logado;
	
	//construtores e destrutores
	public function __construct($pLogin,$pSenha){ 
		$this->login = $pLogin;
		$this->senha = $pSenha;
	}
	
	public function __destruct(){  /*destruindo o objeto*/  }
	
	//setando os getters
    public function getId(){return $this->id;}
	public function getLogin(){return $this->login;}
	public function getSenha(){return $this->senha;}
	public function getEmail(){return $this->email;}
	public function getTelefone(){return $this->telefone;}
	public function getNome(){return $this->nome;}
	public function getSobrenome(){return $this->sobrenome;}
	public function getDataNascimento(){return $this->dataNascimento;}
	public function getSexo(){return $this->sexo;}
	public function getCargo(){return $this->cargo;}
	public function getContatos(){
		
		$this->montaArrContatos();
		return $this->contatos;
	}
	//fim dos getters
	
	//setando os setters
    public function setId($pId){$this->id = $pId;}
	public function setLogin($pLogin){$this->login = $pLogin;}
	public function setSenha($pSenha){$this->senha = $pSenha;}
	public function setEmail($pEmail){
		$this->email[sizeof($this->email)] = $pEmail;
	}
	public function setTelefone($pTelefone){
		$this->telefone[sizeof($this->telefone)] = $pTelefone;
	}
	public function setNome($pNome){$this->nome = $pNome;}
	public function setSobrenome($pSobrenome){$this->sobrenome = $pSobrenome;}
	public function setDataNascimento($pDataNascimento){$this->dataNascimento = $pDataNascimento;}
	public function setSexo($pSexo){$this->sexo = $pSexo;}
	public function setCargo($pCargo){$this->cargo= $pCargo;}
	public function setContatos($pContatos){ $this->contatos = $pContatos;}
	public function isLogado($pIsLogado){ $this->logado = $pIsLogado;}
	
	//fim dos setters
	
	
	public function login(){
		$autentica = new Autentica();
		$logado = $autentica->login($this->login,$this->senha,true);
		
		if($logado){
			
			$this->isLogado(true);
			return true;
			
		}else{
			return false;
		}
		
	}
	
	public function montaUsuario(){

		$usuarioDAO = new UsuarioDAO();
		$usuarioFull = $usuarioDAO->getUsuario($this);
		return $usuarioFull;
		
	}
	
	public function logoff(){
			$this->isLogado(false);
	}
	
	/**
	 * 
	 * Grava usuario no BD
	 */
	public function gravaUsuario($pUser){
		
		$usuarioDao = new UsuarioDAO();
		
		if($usuarioDao->gravaUsuario($pUser)){
			return true;	
		}else{
			return false;
		}
	}
	
	public function adicionaProjeto(){
		
	}
	
	public function removeProjeto(){
		
	}
	
	/**
	 * VOID
	 * Monta um array com todos os contatos do usuario, (AJAX response)
	 */
	public function montaArrContatos(){
		
		$usuarioDAO = new UsuarioDAO();
		$usuarioContatos= $usuarioDAO->getContatos($this);

			//monta o JSON
			$i = 0;
			while($contatosIds = mysql_fetch_array($usuarioContatos)){
				$cod_usuario_contato = $contatosIds['cod_usuario_contato'];
				
				$contatoTemp = new Contato($cod_usuario_contato);
				$contato = $contatoTemp->montaContato($contatoTemp);
					
					//monta array para formatar em JSON
					$dados[$i]["nome"] = $contato->getNome();
					$dados[$i]["sobrenome"] = $contato->getSobrenome();
					
					//TODO:BUSCA DE EMAIL E TELEFONE, e outros
						//$dados[$i]["email"] = $contato->getEmail();
						//$dados[$i]["telefone"] = $contato->getTelefone();			
				$i++;
				
			}
					
				$dados = json_encode($dados);
				
				$jsonRetorno  = '{"json":';
				$jsonRetorno .= $dados;
				$jsonRetorno .= '}'; 
				
				$this->contatos = $jsonRetorno;
				
				
	}
	
}
?>